Skip to main content

Form Nodes

Node​

所有实际的表单 Node 都继承于 Node。

API​

属性/方法类型描述
nodePath readonlystringNode 的路径。
valueany返回或者设置节点的值。如果字段是系统保护字段,则设置该值将会引发错误。
caution

Builder API 创建的 node 节点取值应该直接使用通过 FormDialogBuilder 创建表单时,指定的 id 值,这里的表单完全是通过脚本创建的,和智元平台中配置的模型完全无关。

FormNode​

表单根节点引用对象。

API​

属性/方法类型描述
getField(path)参数:path: string返回:FieldNode在父节点中返回 path 对应的节点引用。
getSubGrid(path)参数:path: string返回:SubGridNode在父节点中返回 path 对应的子表引用。
getSubTreeGrid(path)参数:path: string返回:SubTreeGridNode在父节点中返回 path 对应的子树表引用。
getSubTreeGridApi(path)参数:path: string返回:{ expand(id), collapse(id) }展开或折叠树节点。expand(id)、collapse(id) 的参数是节点 id。

FieldNode​

表单字段节点引用对象。

API​

属性/方法类型描述
name readonlystring返回字段的名称,也就是字段的 id。
labelstring返回或者设置字段的显示标签文本。
disabledboolean返回或者设置字段的可用状态。如果字段是系统保护字段并且处于不可用状态,则设置该值为 false 将会引发错误。
visibleboolean返回或者设置字段的可见状态。
requiredboolean返回或者设置字段的必填状态。
isValid readonlyboolean返回字段的校验正确性。
setIsValid(valid, [message])参数:valid: booleanmessage: string返回:无设置字段的校验正确性。field.setIsValid(false, 'Error!')
selectUnique(params)参数:params: FindParams 或 string返回:Promise查询结果只有一条时,用该结果给当前字段赋值。
selectOne(params)参数:params: FindParams返回:Promise查询有结果时,用第一条给当前字段赋值。
addFilter(where, bindVars)参数:where: FindWhereParams,bindVars: \{ name, value \}[] 可选,返回:无给参照字段增加过滤条件,与内置条件按 AND 组合。
removeFilter()去掉通过 addFilter 增加的过滤条件。
richText readonlyRichTextApi | undefined富文本 API,仅 RichText 富文本字段 的 text 字段可用,其他字段为 undefined。用于读写富文本内容,详细介绍。

非常重要!

如果 FieldNode 是一个引用关联字段,比如客户、供应商、人员、部门等这种类型的字段。那么我们要给这种字段通过 Client API 赋值的时候,不能直接给字段的 value 设置一个 id。而必须要通过 selectUnique 或者 selectOne 来查找数据并且赋值。

SubGridNode​

继承自 FieldNode

API​

属性/方法类型描述
rowCount readonlynumber返回子表的行数量。
rows readonlyRowNode[]返回子表所有行节点。
appendRow(initialize, initData)参数:initialize: boolean 可选,initData: any 可选,返回:RowNode在末尾加一行。initialize 为 true 时同时初始化。initData 是这一行的初始值。Web 端默认有空白行时,追加发生在最后一行之前;H5 直接追加到最后。
appendRows(rows: Array<any>)
参数: rows : Array<any>, 行数据集合给子表添加一批行
insertRow(index)参数:index: number返回:RowNode给子表在 index 位置插入一个空白行,并且返回新增的行引用。
insertRows(index:number, rows: Array<any>)参数:index: number, rows : Array<any>行数据集合给子表在 index 位置插入一批数据行。
removeRowAt(index)参数:index: number删除子表中 index 位置的行。
removeAllRows()清空子表的所有行。
getRowAt(index)参数:index: number返回:RowNode返回子表中 index 位置的行。
rebuildColumns()返回:无明细列或列分组变更后刷新列头,并同步子表 schema 与已有行数据。建表阶段列结构不再变化时不必调用。

SubTreeGridNode​

继承自 SubGridNode,因此包含子表的全部方法。通过 form.getSubTreeGrid(path) 获取。

API​

属性/方法类型描述
appendChild(parentId, data, initialize)parentId: string \| null,data: any,initialize: boolean 可选,返回:RowNode在指定父节点下加一个子节点。parentId 为 null 时加到根上。
appendChildren(parentId, children)parentId: string \| null,children: any[]在指定父节点下批量加子节点。
getChildren(parentId)参数:parentId: string,返回:RowNode[]返回该节点的直接子节点。
getParent(nodeId)参数:nodeId: string,返回:RowNode \| null返回父节点。
getPath(nodeId)参数:nodeId: string,返回:string[]从根到该节点的 id 路径。
removeNode(nodeId)参数:nodeId: string删除该节点及其全部子孙。
moveNode(nodeId, newParentId)nodeId: string,newParentId: string \| null把节点挂到新的父节点下。newParentId 为 null 时挂到根上。

展开和折叠不在节点上,用 form.getSubTreeGridApi(path).expand(id) 和 collapse(id)。

RowNode​

继承自 FieldNode

API​

属性/方法类型描述
getField(path)参数:path: string返回:FieldNode在父节点中 返回 path 对应的节点引用。
rowIndex readonlynumber返回子表行位置(从 0 开始)。
gridName readonlystring返回子表名称。
isInitialized readonlybool行是否初始化。
initialize() 初始化行, 添加的空行是未初始化的情况下不会触发规则计算,这时需要主动调用行初始化方法